To provide a service or application (generally “an application”) using virtualized network platforms, a set of one or more virtual network functions (VNFs) may be instantiated on dedicated or shared hardware. For example, a VNF may be a firewall, cache, gateway, intrusion detection system, or the like. Each VNF may require one or more virtual machines (VMs) to be instantiated. In turn, VMs may require various resources, such as memory, virtual computer processing units (vCPUs), and network interfaces or network interface cards (NICs).
Many modern computer processing units (CPUs), which can be implemented in hosts for VNFs or other remote functionality, offer a tradeoff between computing power and energy efficiency (e.g., power consumption, heat generation) depending on the CPU's clock speed. A CPU can transition between a lower clock speed (lower energy) state to a higher clock speed (higher energy) state at the direction of an operating system (OS) or an orchestration system. This allows the host to run the CPU at a lower clock speed to reduce energy consumption and the need for heat dissipation when the compute load is lower. The host can also ramp up clock speed in response to increased compute load. This technique is generally known as CPU frequency scaling.
CPU frequency scaling presents certain complications and complexities in virtualized environments not present in local implementations. Improved techniques for managing CPU frequency scaling are valuable to improve the function and reliability of VNFs, which ultimately impacts user experience, as well as preserve energy, which ultimately impacts host costs.
Additional computing techniques and implementations present similar opportunities. For example, comparable issues exist with container technology. Like VMs, containers use compute resources of a host OS to run a tenant workload. CPU frequency scaling and other resources management techniques are thus pertinent beyond the VM environment.
This disclosure is directed to solving one or more of the problems in the existing technology.